What's New? > Breaking Changes in SciChart WPF SDK v8
Breaking Changes in SciChart WPF SDK v8

When upgrading SciChart WPF to v8 of the SDK we have taken great care to preserve the original API.

Although there are some breaking changes in the SciChart WPF v8 SDK (vs version 7.x), we are hoping that for most customers SciChart WPF v8 is a drop-in replacement.

In the majority of cases, SciChart WPF v8 should be a drop-in replacement for customers of SciChart WPF v7, with a very high proportion of backward compatible APIs.

A list of breaking changes that we know about are found below. If you find more and require assistance, simply contact-us and our team will be happy to help.

What Backward Compatibility Testing have we done?

At SciChart we make an SDK consumed by thousands of developers worldwide, and don’t have access to all of your code. We do however, have access to our own WPF Examples, Sandbox, Tutorials and Test-Cases. To that end, we have analyzed backward compatibility by using the SciChart WPF SDK v8 in SciChart WPF v7 Sandbox Examples and Tutorials.

Breaking Changes in SciChart 3D API

  • Behavior change: Totally reworked positioning of Axis Labels and Axis Titles in SciChart 3D in order to provide better experience and resolve cases of labels and titles overlapping
  • Obsolete property: Axis3D.TickLabelAlignment property has been made Obsolete. Please use the TickLabelOrientation property instead. See more details here
  • Obsolete property: SciChart3DSurface.AxisPlaneVisibilityMode property has been made Obsolete. To change visibility of World Box planes please set AxisPlaneVisibilityMode and IsPlaneVisible attached properties on SciChartSurface. See more details here
  • API change: Added a new parameter to the CameraController.Update() method. The updated method signature is CameraController.Update(bool hasChanges = true)
  • API change: Method signature changes in some SCRT*** classes due to VisualXccelerator Engine update. Although these classes are part of the public API, they are used internally most of the time

Breaking Changes in SciChart 2D API

  • Behavior change: Changed default behavior of AnnotationCreationModifier. Now it doesn’t change internal state of a new Annotation by setting IsEditable and IsSelected properties. These properties can be set separately in an AnnotationCreationModifier.AnnotationCreated event handler
  • Obsolete property: Static property VisualXcceleratorEngine.UseAlternativeFillSource has been marked Obsolete. Fill source is resolved per instance now, so the property has been replaced by the instance property VisualXcceleratorRenderSurface.UseAlternativeFillSource
  • API change: Added a new parameter to the IAxisPanel.DrawTicks(TickCoordinate, float) method. This change impacts AxisPanel and PolarAxisPanel classes and all implementors of the IAxisPanel interface. The updated method signature is IAxisPanel.DrawTicks(TickCoordinates tickCoords, float offset, bool isSoftwareMode)
  • API change: Removed the Dispatcher parameter from the RenderTimer class constructor
  • API change: Changed the signature of ChartModifierBase.MatchesExecuteOn(MouseButtons mouseButtons, ExecuteOn executeOn) method: added two MouseModifier parameters. The updated method signature is ChartModifierBase.MatchesExecuteOn(MouseButtons mouseButtons, MouseModifier modifierKey, ExecuteOn executeOn, MouseModifier executeOnModifier)
  • API change: Reworked the API of VisualXcceleratorRenderSurface class. Removed the VisualXcceleratorRenderSurface(VxRenderSettings) constructor. Now, rendering settings for the VisualXccelerator renderer can be provided through the VisualXcceleratorEngine static class. Please find more details here

Breaking Changes in the IRenderContext API

  • API change: Removed the Rect parameter (second parameter) from the IRenderContext2D.DrawSprite(ISprite2D srcSprite, Rect srcRect, Point destPoint) method. It was not used internally but might have forced users to calculate Sprite boundaries before calling it. The updated method signature is IRenderContext.DrawSprite(ISprite2D srcSprite, Point destPoint)
  • API change: Removed the Rect parameter (second parameter) from the IRenderContext2D.DrawSprites(ISprite2D sprite2D, Rect srcRect, IEnumerable points) method. It was not used internally but might have forced users to calculate Sprite boundaries before calling it. The updated method signature is IRenderContext.DrawSprites(ISprite2D sprite2D, IEnumerable points)
  • API change: IRenderContext2D.DrawText(Rect, Color, float, string, FontFamily, FontWeight, FontStyle) has been made Obsolete. It was problematic because there was no means to measure text size provided by the API. In SciChart v8.0, new method has been added that allows measuring text size. Please use IRenderContext2D.DrawText(Point, string, float, FontFamily, FontWeight, FontStyle, Color) and IRenderContext2D.MeasureText(string, float, FontFamily, FontWeight, FontStyle) instead.
  • API change: Added a new method to the IVxRenderContext interface: IVxRenderContext.BeginFrame(). When using IRenderContext API for drawing with VisualXccelerator renderer, the IVxRenderContext.BeginFrame() method must be called before any drawing operations. When using other SciChart drawing APIs such as Custom RenderableSeries API, this is not required because the method is called by SciChart internally. Please see the “Using RenderContext API” example in Sandbox on our GitHub for a usage example

Updated Consultancy Services Available

As a paid customer of SciChart WPF if you are within your support subscription, then you will get access to SciChart WPF v7 for free.

What your support subscription covers is:

  • Access to (ability to develop applications with all major/minor versions of SciChart)
  • Bug fixes, updates
  • Technical support ‘how do I do X’ questions as well as assistance on best-practice implementing the software.
  • Best practice advice on getting the best performance out of SciChart.

What we don’t include is:

  • Custom work such as new features or enhancements or workarounds to the chart.
  • Performance analysis of your applications to improve application speed with SciChart (or wider performance analysis)
  • Upgrading your applications to the latest versions when you have lots of customisation.

For these ‘not included’ aspects of technical support, our consultants are available to help you on a one-to-one basis, coding or advising over Skype/Zoom/Web conference and assisting you to upgrade to the latest version, and performance profile or tune your applications to be the best they can be.

If you require these services, then get in contact with sales, and we can provide a quote for hourly work.

See Also